#ifndef MAIN_WINDOW_H
#define MAIN_WINDOW_H

#include <gtkmm.h>
#include <gtkmm/drawingarea.h>
#include <gtkmm/window.h>
#include <mutex>

class MainWindow : public Gtk::Window {
public:
  MainWindow();
  void SetNewImage(int width, int height, unsigned char *data, int index);
  void refreshUI();

private:
  Gtk::DrawingArea drawArea, drawCamera1, drawCamera2, drawCamera3, drawCamera4,
      drawCamera5;
  void DrawAction(const Cairo::RefPtr<Cairo::Context> &context, int width,
                  int height, int index);
  bool onclose();
  void refresh_call();
  Glib::Dispatcher m_Dispatcher;
  Gtk::Notebook m_Notebook;
  std::mutex mut;
  Glib::RefPtr<Gdk::Pixbuf> imageBuf, image1, image2, image3, image4, image5;
};

#endif
